Ext.namespace('pages.p2p.vip.grsy.query');

pages.p2p.vip.grsy.query.Main = function(config) {
	Ext.apply(this, config);
	this.initUIComponents();
	pages.p2p.vip.grsy.query.Main.superclass.constructor.call(this);
};

Ext.extend(pages.p2p.vip.grsy.query.Main, Ext.Panel, {
	/**
	 * 构造函数
	 */
	initUIComponents : function() {
		
		this.queryForm = new Ext.form.FormPanel({
			layout : 'column',
			region : 'north',
			labelWidth : 100,
			labelAlign : 'right',
			autoHeight :true,
			border : false,
			frame : false,
			items : [{
				columnWidth : 1,
				height : 10,
				border : false
			},{
				columnWidth : .25,
				layout : 'form',
				border : false,
				items : [{
					fieldLabel : '变动开始日期',
					name : 'START_DATE',
					id : 'START_DATE',
					anchor : '96%',
					format : 'Y-m-d',
					xtype : 'datefield'
				}]
			}, {
				columnWidth : .25,
				layout : 'form',
				border : false,
				items : [{
					fieldLabel : '变动结束日期',
					name : 'END_DATE',
					id : 'END_DATE',
					anchor : '96%',
					format : 'Y-m-d',
					xtype : 'datefield'
				}]
			}, {
				columnWidth : .25,
				layout : 'form',
				border : false,
				items : [{
					fieldLabel : '变动金额大于',
					name : 'MINCZJE',
					id : 'MINCZJE',
					anchor : '96%',
					decimalPrecision:2,
					xtype : 'numberfield'
				}]
			}, {
				columnWidth : .25,
				layout : 'form',
				border : false,
				items : [{
					fieldLabel : '变动金额小于',
					name : 'MAXCZJE',
					id : 'MAXCZJE',
					anchor : '96%',
					decimalPrecision:2,
					xtype : 'numberfield'
				}]
			},{
				columnWidth : .25,
				layout : 'form',
				border : false,
				items : [{
					fieldLabel : '用户名',
					name : 'USERNAME',
					id : 'USERNAME',
					anchor : '96%',
					xtype : 'textfield'
				}]
			},{
				columnWidth : .25,
				layout : 'form',
				border : false,
				items : [{
					fieldLabel : '手机号码',
					name : 'SJHM',
					id : 'SJHM',
					anchor : '96%',
					xtype : 'textfield'
				}]
			},{
				columnWidth : .25,
				layout : 'form',
				border : false,
				items : [new Ext.form.ComboBox({
					fieldLabel : '资产变动类型',
					name : 'ZC_CHANGE_STATE',
					id : 'ZC_CHANGE_STATE',
					anchor : '96%',
					readOnly : true,
					store : new Ext.data.SimpleStore({
						fields : ['VALUE', 'TEXT'],
						data : [['', '全部'],['0', '0_其它'],['1', '1_收益发放'], ['2', '2_抽奖发放']
						, ['3', '3_充值'], ['4', '4_提现申请'], ['5', '5_vip充值推荐人奖励发放']
						,['6', '6_债权收益推荐人分红'],['7', '7_红包使用，红包金额入账'],['8', '8_退还充值金额']
						,['9', '9_退还提现金额'],['10', '10_投资项目成功,冻结投资金额'],['11', '11_投资项目到期,退还投资金额']
						,['12', '12_投资失败,退还投资金额'],['13', '13_红包状态回退,扣除已获得红包金额'],['14', '14_升级VIP']
						,['15', '15_升级VIP失败,退还金额'],['16', '16_VIP兑奖'],['17', '17_VIP兑奖失败,扣除金额'],['18', '18_pos单号投资债权,待审核'],
						['19', '19_pos单号投资债权,审核通过'],['20', '20_pos单号投资债权,审核失败'],['21', '21_pos单号投资到期,还款成功'],['22', '22_提现成功']
						,['23', '23_pos单投资撤销成功'],['24', '24_pos单投资撤销失败'],['25', '25_债权转让成功'],['26', '26_借款人到期归还本金']
						,['27', '27_借款人到期归还服务费'],['28', '28_投资项目成功,冻结投资金额'],['29', '29_投资项目到期,收益发放'],['30', '30_投资项目到期,退还投资金额'],['31', '31_投资失败,退还投资金额']
						,['32', '32_投资失败,退还投资金额'],['33', '33_投资撤销,扣除服务费'],['34', '34_投资项目成功,冻结投资金额'],['35', '35_投资项目到期,收益发放'],['36', '36_投资项目到期,退还投资金额']
						,['37', '37_转让成功,退还转让金额'],['3701', '3701_转让成功,收取手续费'],['38', '38_修改手机号,收取手续费'],['4001', '4001_H计划投资'],['4002', '4002_H计划投资撤销']
						,['4003', '4003_H计划已截止'],['5001', '5001_借款人通过平台还款']]
					}),
					valueField : 'VALUE',
					displayField : 'TEXT',
					hiddenName : 'ZC_CHANGE_TYPE_VALUE',
					triggerAction : 'all',
					listWidth:290,
					mode : 'local',
					editable : false,
					selectOnFocus : true,
					value : ''
				})]
			}, {
				columnWidth : .25,
				layout : 'form',
				border : false,
				hidden : true,
				items : [{
					fieldLabel : '处理时间',
					name : 'PROC_ST4ART_TIME',
					id : 'PROC_STA4RT_TIME',
					anchor : '96%',
					format : 'Y-m-d',
					xtype : 'datefield'
				}]
			}]
		});
		
		var comboRegions={};  //1.定义一个对象  
		function getComboRegions(field){  
		    if(field==null){  
		        field='region';  
		    }  
		    if(! comboRegions[field]){   //2.  a.这里又怎么是数组？（有点不明白……） b.第一次判断条件是真，执行if包含的代码块；第二次为假~  
		        var storeRegions=new Ext.data.SimpleStore({  
		            fields:[ {name:'key' }, {name: 'value'} ]  
		        });  
		        storeRegions.loadData(regions);  
		        comboRegions[field]=new Ext.form.ComboBox({  
		            typeAhead: true,  
		            editable : false,   
		            fieldLabel:'区域',  
		            lazyRender:true,  
		            triggerAction: 'all',  
		            mode:'local',  
		            hiddenName:field,  
		            store: storeRegions,  
		            valueField: 'key',  
		            displayField: 'value',  
		            /*VAR*/  
		            emptyText:'请选择',  
		            allowBlank:false  
		        });  
		    }  
		    return comboRegions[field];  
		};
		
		
		this.store = new Ext.data.Store({
			proxy : new Ext.data.HttpProxy({
				url : ExtJ.getActionPath('grsy/queryGrsyList.do')
			}),
			remoteSort : true,
			reader : new Ext.data.JsonReader({
				root : 'data',
				totalProperty : 'total',
				id : 'ID'
			}, [{
				name : 'ID',
				mapping : 'ID'
			},{
				name : 'USERNAME',
				mapping : 'USERNAME'
			},{
				name : 'SJHM',
				mapping : 'SJHM'
			},{
				name : 'ZC_CHANGE_TYPE',
				mapping : 'ZC_CHANGE_TYPE'
			},{
				name : 'ZC_CHANGE_DATE',
				mapping : 'ZC_CHANGE_DATE'
			},{
				name : 'ZC_CHANGE_JE',
				mapping : 'ZC_CHANGE_JE'
			},{
				name : 'ZC_ORIGINAL_DJJE',
				mapping : 'ZC_ORIGINAL_DJJE'
			},{
				name : 'ZC_ORIGINAL_KYJE',
				mapping : 'ZC_ORIGINAL_KYJE'
			},{
				name : 'ZC_ORIGINAL_ZHYE',
				mapping : 'ZC_ORIGINAL_ZHYE'
			},{
				name : 'ZC_FINAL_KYJE',
				mapping : 'ZC_FINAL_KYJE'
			},{
				name : 'ZC_FINAL_DJJE',
				mapping : 'ZC_FINAL_DJJE'
			},{
				name : 'ZC_FINAL_ZHYE',
				mapping : 'ZC_FINAL_ZHYE'
			},{
				name : 'ZC_OCCUR_JE',
				mapping : 'ZC_OCCUR_JE'
			}
			])
		});
		
		
	
		
		
		
		var sm = new Ext.grid.CheckboxSelectionModel({singleSelect:true});
		var cm = new Ext.grid.ColumnModel([sm,new Ext.grid.RowNumberer(),{
				header : '用户名',
				width : 120,
				sortable : true,
				dataIndex : 'USERNAME'
			},{
				header : '手机号码',
				width : 120,
				sortable : true,
				dataIndex : 'SJHM'
			},{
				header : '资产变动类型',
				width : 230,
				sortable : true,
				dataIndex : 'ZC_CHANGE_TYPE',
				renderer : function(value, metaData, record, rowIndex, colIndex, store) {
					if("1" == value){
						return "债权发放";
					}
					else if("2" == value){
						return "抽奖发放"
					}
					else if("3" == value){
						return "充值"
					}
					else if("4" == value){
						return "提现申请"
					}
					else if("5" == value){
						return "vip充值推荐人奖励发放"
					}
					 else if("6"== value){
						return "债权收益推荐人分红"
					}else if("7"==value){
						return "债权红包使用"
					}else if("8"==value){
						return "充值信息删除（金额归还）"
					}else if("9"==value){
						return "提现失败（金额归还）"
					}else if("10"==value){
						return "投资债权成功"
					}else if("11"==value){
						return "投资债权到期归还投资金额"
					}else if("12"==value){
						return "投资信息删除（金额归还）"
					}else if("13"==value){
						return "债权红包回退(由已使用改为未使)"
					}else if("14"==value){
						return "VIP充值成功"
					}else if("15"==value){
						return "VIP充值失败（金额归还）"
					}else if("16"==value){
						return "VIP兑奖成功"
					}else if("17"==value){
						return "VIP兑奖失败（金额归还）"
					}else if("18"==value){
						return "pos单号购买债权(待审核)"
					}else if("19"==value){
						return "pos单号购买债权(审核通过)"
					}else if("20"==value){
						return "pos单号购买债权(审核失败)"
					}else if("21"==value){
						return "pos单号投资还款成功"
					}else if("22"==value){
						return record.get("ZC_OCCUR_JE")+"元,提现成功"
					}else if("23"==value){
						return record.get("ZC_OCCUR_JE")+"元,pos单投资撤销成功"
					}else if("24"==value){
						return record.get("ZC_OCCUR_JE")+"元,Pos单投资撤销失败"
					}else if("25"==value){
						return "募集期满标，"+record.get("ZC_OCCUR_JE")+"元,已至借款人账户"
					}else if("26"==value){
						return "借款人到期归还本金,"+record.get("ZC_OCCUR_JE")+"元,成功"
					}else if("27"==value){
						return "借款人到期归还服务费"+record.get("ZC_OCCUR_JE")+"元,成功"
					}else if("28"==value){
						return "投资红点宝成功,冻结投资金额"
					}else if("29"==value){
						return "投资红点宝到期,收益发放"
					}else if("30"==value){
						return "投资红点宝到期,退还投资金额"
					}else if("31"==value){
						return "投资红点宝失败,退还投资金额"
					}else if("32"==value){
						return "投资撤销,退还投资金额"
					}else if("33"==value){
						return "投资撤销,扣除服务费"
					}else if("34"==value){
						return "投资转让专区项目成功,冻结投资金额"
					}else if("35"==value){
						return "投资转让专区项目到期,收益发放"
					}else if("36"==value){
						return "投资转让专区项目到期,退还投资金额"
					}else if("37"==value){
						return "转让成功,退还转让金额"
					}else if("3701"==value){
						return "转让成功,手续费"
					}else if("38"==value){
						return "修改手机号,收取手续费"
					}else if("4001"==value){
                        return "H计划投资"
                    }else if("4002"==value){
                        return "H计划投资撤销"
                    }else if("4003"==value){
                        return "H计划已截止"
                    }else if("5001"==value){
                        return "借款人通过平台还款"
                    }else{
						return value;
					}
				}
			},{
				header : '资产变动日期',
				width : 150,
				sortable : true,
				dataIndex : 'ZC_CHANGE_DATE'
			},{
				header : '资产变动金额',
				width : 100,
				sortable : true,
				dataIndex : 'ZC_CHANGE_JE'
			},{
				header : '原始冻结金额',
				width : 120,
				sortable : true,
				dataIndex : 'ZC_ORIGINAL_DJJE'
			},{
				header : '原始可用金额',
				width : 120,
				sortable : true,
				dataIndex : 'ZC_ORIGINAL_KYJE'
			},{
				header : '原始账户余额',
				width : 120,
				sortable : true,
				dataIndex : 'ZC_ORIGINAL_ZHYE'
			},{
				header : '最终可用金额',
				width : 120,
				sortable : true,
				dataIndex : 'ZC_FINAL_KYJE'
			},{
				header : '最终冻结金额',
				width : 120,
				sortable : true,
				dataIndex : 'ZC_FINAL_DJJE'
			},{
				header : '最终账户余额',
				width : 120,
				sortable : true,
				dataIndex : 'ZC_FINAL_ZHYE'
			}
			
			
			]);
			
		
		/**
		 * GridPanel
		 */
		this.grid = new Ext.grid.GridPanel({
			id : 'grid',
			region : 'center',
			store : this.store,
			border : true,
			frame : false,
			viewConfig : {
				autoFill : false,
	    	    forceFit : false,
	    	    focusRow : function(){
	    	    	return;
	    	    },
	    	    getRowClass : function(record, rowIndex, rowParams, store){
	    	    	if (record.get("TOP_LEVEL") == "1") {
				        return 'ux-grid-record-onTop';
				    }
	    	    }
			},
			sm : sm,
			cm : cm,
			tbar : [{				
				id : 'query',
				iconCls : 'query',
				text : '查询',
				handler : this.onQuery.createDelegate(this)
			},'-', {
				id : 'clear',
				iconCls : 'reset',
				text : '重置',
				handler : this.onReset.createDelegate(this)
			},'-',{
				id : 'view',
				iconCls : 'view',
				text : '查看',
				handler : this.onView.createDelegate(this)
			} ],
			bbar : new Ext.PagingToolbar({
				pageSize : pageSize,
				store : this.store,
				displayInfo : true,
				displayMsg : '当前显示第 {0} - {1} 条 / 共 {2} 条',
				emptyMsg : "没有记录"
			})
		});
		
		Ext.apply(this, {
			title : '个人资产',
			closeAction : 'close',
			layout : 'border',
			border : false,
			tools : [{
						id : 'help',
						handler : function(){
							this.onHelp();				
						}.createDelegate(this)
					}],
			width : 700,
			height : 450,
			modal : true,
			listeners : {
				'render' : this.initData.createDelegate(this)
			},
			items : [this.queryForm,this.grid]
		})
	},

	initData : function(){
		this.onQuery();
	},
	
	onHelp : function(){
		var dialog = new global.help.HelpWindow({key : 'cw.all.helpGrzc'});
		dialog.show();
	},
	
	
	onQuery : function(){
		
		this.store.baseParams.type = Ext.getCmp('ZC_CHANGE_STATE').getValue();
		this.store.baseParams.endDate = Ext.getCmp('END_DATE').getRawValue();
		this.store.baseParams.startDate = Ext.getCmp('START_DATE').getRawValue();
		this.store.baseParams.username = Ext.getCmp('USERNAME').getValue();
		this.store.baseParams.minczje = Ext.getCmp('MINCZJE').getValue();
		this.store.baseParams.maxczje = Ext.getCmp('MAXCZJE').getValue();
		this.store.baseParams.sjhm = Ext.getCmp('SJHM').getValue();
		
		var startDate=this.store.baseParams.startDate;
		var endDate=this.store.baseParams.endDate ;
		if(startDate==''&&endDate==''){
			var now=new Date().format('Y-m-d');
		this.store.baseParams.startDate = now;
		this.store.baseParams.endDate = now;
		Ext.getCmp('START_DATE').setValue(this.store.baseParams.startDate);
		Ext.getCmp('END_DATE').setValue(this.store.baseParams.endDate);
			
		}else{
			 if(''==startDate){
					Ext.Msg.alert('提示', '开始时间不能为空!');
				return;
			}else if(''==endDate){
					Ext.Msg.alert('提示', '结束时间不能为空!');
				return;
			}else if(startDate>endDate){
				Ext.Msg.alert('提示', '开始时间不能大于结束时间!');
				return;
			}
		var kssj=new Date(startDate);
		var jssj=new Date(endDate);
		var sjc_d=jssj.getTime()-kssj.getTime();
		var day=Math.floor(sjc_d/(24*3600*1000));
			if(day>30){
				Ext.Msg.alert('提示', '开始时间与结束时间之间不能大于31天!');
				return;
			}
		}
		/*
		var minczje=this.store.baseParams.minczje;
		var maxczje=this.store.baseParams.maxczje ;
		if(minczje>maxczje){
			Ext.Msg.alert('提示', '资产变动金额最小不能大于最大!');
			return;
		}*/
		Ext.getBody().mask("正在查询,请稍候...");
		this.store.reload({
			params : {
				start : 0,
				limit : pageSize
			},
			callback : function() {
				Ext.getBody().unmask(true);
			}
		});
	},
	
	onReset : function(){
		this.queryForm.getForm().reset();
	},
	
	onView : function(){
		var isClick = this.grid.getSelectionModel().getSelected();
		if(isClick){
			var win = new pages.p2p.vip.grsy.query.View({
				infos:isClick
			});
			win.show();
		}else{
			Ext.Msg.alert("提示","请选择一条记录",function(){
				return;
			});
		}
	}
});